package br.com.autoLeal.cliente.bean;

import javax.ejb.EJB;
import javax.faces.bean.ManagedBean;
import javax.faces.bean.ViewScoped;

import br.com.autoLeal.bean.GenericBean;
import br.com.autoleal.cliente.entity.ClienteServiceBean;
import br.com.autoleal.cliente.entity.PessoaFisica;
import br.com.autoleal.cliente.entity.PessoaJuridica;
import br.com.autoleal.util.Util;

@ViewScoped
@ManagedBean
public class IncluirClienteBean extends GenericBean {

	private static final long serialVersionUID = -6978325458842908433L;

	private Integer tpCliente;

	private PessoaFisica pessoaFisica = new PessoaFisica();
	private PessoaJuridica pessoaJuridica = new PessoaJuridica();

	@EJB
	private ClienteServiceBean clienteServiceBean;

	public void incluirCliente() {
		if (validar()) {
			try {
				switch (tpCliente) {
				case 1:
					pessoaFisica.setCodigo(Util.preencheCom(clienteServiceBean.buscarCodigoMax(), "0", 5, 1));
					clienteServiceBean.incluirCliente(pessoaFisica);
					pessoaFisica = new PessoaFisica();
					exibirMsgSucesso("Cliente cadastrado!");
					break;
				case 2:
					pessoaJuridica.setCodigo(Util.preencheCom(clienteServiceBean.buscarCodigoMax(), "0", 5, 1));
					clienteServiceBean.incluirCliente(pessoaJuridica);
					pessoaJuridica = new PessoaJuridica();
					exibirMsgSucesso("Cliente cadastrado!");
					break;
				default:
					break;
				}
			} catch (Exception e) {
				exibirMsgErro(e.getMessage());
			}
		}
	}

	public Boolean validar() {
		if (tpCliente == 0) {
			exibirMsgAviso("Selecione o tipo de pessoa");
			return Boolean.FALSE;
		}
		return Boolean.TRUE;
	}

	public Integer getTpCliente() {
		return tpCliente;
	}

	public void setTpCliente(Integer tpCliente) {
		this.tpCliente = tpCliente;
	}

	public PessoaFisica getPessoaFisica() {
		return pessoaFisica;
	}

	public void setPessoaFisica(PessoaFisica pessoaFisica) {
		this.pessoaFisica = pessoaFisica;
	}

	public PessoaJuridica getPessoaJuridica() {
		return pessoaJuridica;
	}

	public void setPessoaJuridica(PessoaJuridica pessoaJuridica) {
		this.pessoaJuridica = pessoaJuridica;
	}

}
